package com.world.rickcloudendpoint.logic.service;

import com.world.rickcloudendpoint.common.exception.ClientException;
import com.world.rickcloudendpoint.common.exception.ModuleException;
import com.world.rickcloudendpoint.models.params.QueryParams;
import com.world.rickcloudendpoint.models.result.PageResult;
import com.world.rickcloudendpoint.models.vo.ASignalVO;

import java.util.List;

/**
 * @description:
 * @author: jlsong
 * @date: 2022/01/22 22:18:00
 * @version: 1.0
 */
public interface IASignalService {

    /**
     * 新增一个记录
     *
     * @param record 记录信息体
     * @return
     * @throws ModuleException
     */
    ASignalVO add(ASignalVO record) throws ModuleException;

    /**
     * 修改一个记录
     *
     * @param record 记录信息体
     * @return
     * @throws ModuleException
     */
    ASignalVO edit(ASignalVO record) throws ModuleException;

    /**
     * 删除一个或多个记录
     *
     * @param ids 记录标识ID数组
     * @return
     * @throws ModuleException
     */
    Long del(String... ids) throws ModuleException;


    /**
     * 分页查询，当每页显示量为-1时，则是查询全部
     *
     * @param collectionName 集合名称
     * @param payload        查询条件
     * @return
     * @throws ClientException
     */
    PageResult<ASignalVO> list(String collectionName, QueryParams payload) throws ModuleException;

    /**
     * 批量新增
     * @param list 批量集合
     * @param batchSize 插入的数据量
     * @return
     */
    boolean addBatch(List<ASignalVO> list, int batchSize);

}
